iT邦幫忙

2022 iThome 鐵人賽

DAY 11
0
自我挑戰組

50後阿嬤教你寫程式!系列 第 11

Day 11 阿嬤的函式!(下)

  • 分享至 

  • xImage
  •  

Day 11 阿嬤的函式!(下)

哈哈函數這個主題也可以被我拖到三章我真是稱職的文章小偷:)

函數的高等數學

今天我們會用到Math.floor還有一個新人Math.random,我們會用到它們倆來簡化程式碼。
原本程式碼:

randomWord[Math.floor(Math.randon() * randomWord.length];

我們試著把這串程式碼變成函數,就可以復用它來從數組中挑選一個隨機單字。

var font = function (文字) {
  return 文字[Math.floor(Math.random() * 文字.lenght)];
}

var font = ["嚶嚶嚶", "老六", "come的喂"];

font(文字);

輸出以下:


"嚶嚶嚶"


這個程式碼雖然步驟較多,但是至少比上一個程式碼更容易理解,JavaScipt講求的不是快(當然有包含一部分)而是比較注重在過程。

我上次忘記提到,其實函數也是可以進行四捨五入的呦!

var a = Math.random() * 100;

console.log(a);
console.log(Math.ceil(a));

這樣我們的四捨五入機就完工啦!與其說是四捨五入機,不如說是隨機數字生成器,因為
他的操作原理就是隨機生成一個數字,然後四捨五入而已若你想把這臺機器,改成隨機數字生成器
你可以試著這樣做:

var a = Math.random() * 100;

console.log(a);

嗯沒錯,你沒看錯,我就只是把console.log(Math.ceil(a));這句消掉而已
就能改造成隨機生成數字機了,你看,多神奇。
下面分別是它們的輸出內容:
1.

2.

用函數來判斷是不是質數

我們來試著用函數來創建質數是否機吧!

function PrimeNumber(y) {
  if (y == 1) {
    return false;
  }
  for (var i = 2; i < y; i++) {
    if (y % i == 0) {
      return false;
    }
  }
  
  return true;
}

console.log(PrimeNumber(13));

看起來是不是很長?我自己寫的時候也寫到有點頭花腦脹@—@
但是雖然很長,但大概都能懂它的意思。
輸出如下:

true

因為我們在圓括號裡,輸入了 13 ,然後剛好這數又是質數,所以控制台
返回的是 true ,但我們把數字改成 4 呢?看看:

console.log(PrimeNumber(4));
false

因為 4 不是質數,所以控制台才會返回 false ,那我們試試看更大的數:

console.log(PrimeNumber(492425725454757258452648247));
false

它居然不是質數!震驚我800年:)

小總結

今天我們知道怎麼製作隨機單字機,利用函數來四捨五入,用函數確認這數是不是質數,下一章我們會開啟新的單元,至於題目...就留給你們猜吧:)那今天我們就上到這裡,下課嘍!~


上一篇
Day 10 阿嬤的函式!(中)
下一篇
Day 12 阿嬤!元宵節到嘍!
系列文
50後阿嬤教你寫程式!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言